Generating interpolated display data using remote pixel data

ABSTRACT

Interpolating pixel data in scaling pixel data for display can be provided by determining a pixel value at an interpolation location of a display based on filtering pixel data proximate to the interpolation location in a plurality of directions from the interpolation location. Related circuits and computer program products are also disclosed.

RELATED APPLICATION AND CLAIM FOR PRIORITY

This application claims the priority of Korean Patent Application No.2003-20740, filed on Apr. 2, 2003, in the Korean Intellectual PropertyOffice, the disclosure of which is incorporated herein in its entiretyby reference.

FIELD OF THE INVENTION

The invention relates to imaging, and more particularly, to methods,interpolators, and computer program products for scaling of videoimages.

BACKGROUND

It is known to use a “scaler” to increase/decrease the size of a videoimage by changing a corresponding video signal (formatted for eitherinterlaced or progressive scanning) to provide a scaled video signalthat will generate a correspondingly sized (larger/smaller) video image.In contrast, as known by those skilled in the art, a scaler is differentfrom a “deinterlacer” that may change an interlaced formatted videosignal to a progressive formatted video signal.

For example, when a video signal of an image is displayed at a 640×480resolution on a 14-inch monitor, the image may appear relatively clear.However, if the same video signal is provided (at the same resolution)to a 40-inch monitor, the image may be less clear. This situation iscaused because the data included in the video signal is spaced apartmore on the 40 inch monitor than on the 14 inch monitor.

It is known to create additional data (not included in the originalvideo signal) to be added to the original video signal for display on ahigher resolution monitor. The additional data can be created by aprocess that is referred to as “interpolation” As is known by thoseskilled in the art, interpolation can be used to create additional data(i.e., interpolated data) that is included between two adjacent piecesof known data. For example, a relatively clear image may be provided tothe above 40 inch monitor by creating interpolated data for display whenthe image size is scaled from 640×480 to 1600×1200. In other words, thenumber of vertical lines in the displayed image is increased from 480 to1200 when scaling the image to the 40 inch monitor. Accordingly, theinterpolated data can be provided as the pixels which would otherwise bemissing from a line of the display if only the original 480 pixels weredisplayed on the 40 inch monitor.

Linear interpolation using a scaler is discussed, for example, in U.S.Pat. No. 5,793,379, entitled Method and apparatus for scaling imageshaving a plurality of scan lines of pixel data, to Lapidous. Asdiscussed in Lapidous, interpolation data is obtained by filteringexisting pixel data using a linear low-pass filter (LPF), weighting theLPF-filtered pixel data, and averaging the result. Additionally,interpolation data, which is close to actual data, can be provided byperforming interpolation using a polynomial as discussed, for example,in Multirate Digital Filters, Filter Banks, Polyphase Networks, andApplications by Vaidyanathan, a collection of international learnedpapers, proc. IEEE, vol. 78, January 1990.

SUMMARY

Embodiments according to the invention can provide methods, circuits,and computer program products for generating interpolated display datausing remote pixel data. Pursuant to these embodiments, interpolatedpixel data can be provided by determining a pixel value at aninterpolation location of a display based on filtering pixel dataproximate to the interpolation location in a plurality of directionsfrom the interpolation location.

In some embodiments according to the invention, the plurality ofdirections includes more than two different directions. In someembodiments according to the invention, the plurality of directionsincludes about seven different directions.

In some embodiments according to the invention, determining includeslow-pass filtering the data proximate to the interpolation location todetermine a direction of interpolation at the interpolation location,filtering the direction of interpolation to determine pixel data valuesat points on a line that intersects horizontal or vertical lines of thedisplay, and filtering the pixel data values at the points to provide aninterpolated pixel value at the location of interpolation.

In some embodiments according to the invention, filtering the directionof interpolation includes applying Lagrangian or polyphase filtering tothe direction of interpolation. In some embodiments according to theinvention, filtering the pixel data values includes applying Lagrangianor polyphase filtering to the direction of interpolation.

In some embodiments according to the invention, low-pass filteringincludes weighting pixel values of the data proximate to theinterpolation location differently based on different spatial relationsbetween a location of the pixel value and the interpolation location.

In some embodiments according to the invention, an image signal scalingapparatus can determine a direction of interpolation of a location to beinterpolated from two directions obtained from the pixels immediatelyabove and below the interpolation location, applying a weighted valueaccording to the distance between the interpolation location and theupper and lower pixels, calculating pixel data at intersections ofhorizontal (or vertical) lines and an extended line extending from theinterpolation location in the interpolation direction using a Lagrangianfilter, a polyphase filter, or a polynomial filter, interpolating thecalculated pixel data using the polynomial filter, etc., and obtainingfinal interpolation data of the interpolation location.

In some embodiments according to the invention, a direction ofinterpolation of a location to be interpolated can be determined fromtwo directions obtained from the pixels immediately above and below theinterpolation location, applying a weighted value according to thedistance between the interpolation location and the upper and lowerpixels, calculating pixel data at intersections of horizontal (orvertical) lines and an extended extending from the interpolationlocation in the interpolation direction using a Lagrangian filter, apolyphase filter, or a polynomial filter, interpolating the calculatedpixel data using the polynomial filter, etc., and obtaining finalinterpolation data of the interpolation location.

In some embodiments according to the invention, According to an aspectof the invention, there is provided a scaling interpolator comprising adirection determination unit and a directional interpolator.

The direction determination unit receives and LPF (low-pass filter)filters pixel data on a plurality of lines passing through aninterpolation location and determines a direction value, which is usedfor a direction of interpolation at the interpolation location from theLPF-filtered data, and outputs the direction value.

The directional interpolator calculates pixel data of intersections ofhorizontal (or vertical) lines and an extended line, which extends inthe direction of interpolation from the point of interpolation, usingLagrangian or polyphase filtering, applies Lagrangian or polyphasefiltering to the calculated pixel data on the extended line, and obtainsand outputs interpolation data of the interpolation location.

The LPF-filtering is performed by an LPF with the property:

${{x^{\prime}\left( {i,j} \right)} = \frac{{x\left( {{i - 1},j} \right)} + {6 \times {x\left( {i,j} \right)}} + {x\left( {{i + 1},j} \right)}}{8}},$wherein x′(i, j) is the filtered data and x(i, j) is pixel data at thei-th row and j-th column.

The direction of the interpolation location is determined by a directionvalue that is linearly changed between a direction value of a pixel P1above (or to the left of) the interpolation location and a directionvalue of a pixel P2 below (or to the right of) the interpolationlocation according to the interpolation location, if the directionvalues of two pixels P1 and P2 above and below the interpolationlocation are each represented by seven values of 1 through 7.

The direction value of the pixel is determined by:If|W _(dir) _(GLOBAL) ·Pe _(dir) _(GLOBAL) −W _(dir) _(LOCAL) ·Pe _(dir)_(LOCAL) |<TDIR_(i)=DIR_(LOCAL),elseDIR_(i)=DIR_(GLOBAL),

where,

${Pe}_{dir} = {\sum\limits_{k = 0}^{n - 1}{a{{{x_{p}^{\prime}\left( {i,{j\text{:}k}} \right)} - {x^{\prime}\left( {i,j} \right)}}}}}$is used to calculate a difference between the LPF-filtered data and theupdated pixel data,

$W_{dir} = \left\{ \begin{matrix}1.0 & {{dir} = 1} \\1.25 & {{{dir} = 2},3} \\1.375 & {{{dir} = 4},5} \\1.5 & {{{dir} = 6},7}\end{matrix} \right.$is used for calculating a weighted value, and

${{DIR}_{LOCAL} = {{\underset{dir}{ARG}\left\{ {\min\limits_{1 \leq {dir} \leq 3}\left( {W_{dir} \times {Pe}_{dir}} \right)} \right\}\mspace{11mu}{and}\mspace{14mu}{DIR}_{GLOBAL}} = {\underset{dir}{ARG}\left\{ {\min\limits_{1 \leq {dir} \leq 7}\left( {W_{dir} \times {Pe}_{dir}} \right)} \right\}}}}\mspace{14mu}$are used to calculate the direction value according to the minimal valueof W_(dir)×Pe_(dir);

wherein, k is a reference index representing one of five pairs ofpixels, x′(i, j) is the LPF-filtered pixel data, x′_(p)(i, j:k) is theaverage value of the pixel data corresponding to the reference index kfor data situated about the reference pixel in each of the sevendirections, a is a weighted value according to k, wherein a=2 if k isthe value corresponding to the pair centered around the reference pixel,and a=1 otherwise, DIR_(LOCAL) is a local direction value, DIR_(GLOBAL)is a global direction value, DIR_(i) is a final direction value, and Tis a constant representing a threshold value that depends on an imagenoise.

According to another aspect of the invention, there is provided adigital image signal scaling apparatus comprising a memory unit, ascaling interpolator, and a controller. The memory unit receives inputpixel data, updates and stores the pixel data on a plurality of linespassing through an interpolation location, and outputs the updated pixeldata in response to a control signal.

The scaling interpolator determines a direction of interpolation of theinterpolation location from LPF-filtered data of the updated pixel datain response to the control signal, calculates pixel data atintersections of horizontal (or vertical) pixel lines and an extendedline, which extends in the direction of interpolation from the point ofinterpolation using Lagrangian or polyphase filtering, appliesLagrangian or polyphase filtering to the calculated pixel data on theextended line, and obtains and outputs interpolation data of theinterpolation location.

The controller generates the control signal, which controls theLPF-filtering, and the Lagrangian filtering or polyphase filtering.

The scaling interpolator comprises a direction determination unit and adirectional interpolator. The direction determination unit LPF-filtersthe updated pixel data in response to the control signal, determines thedirection value which corresponds to the direction of interpolation ofthe interpolation location from the LPF-filtered data, and outputs thedirection value. The directional interpolator calculates the pixel dataof the intersections of the horizontal (or vertical) lines and theextended line using Lagrangain or polyphase filtering in response to thecontrol signal, applies Lagrangian filtering or polyphase filtering tothe calculated pixel data, and obtains and outputs the interpolationdata of the interpolation location.

According to still another aspect of the invention, there is provided ascaling interpolation method comprising: receiving and LPF-filteringpixel data on a plurality of lines passing through an interpolationlocation and determining a direction value, which is used for adirection of interpolation at the interpolation location from theLPF-filtered data and outputting the direction value; calculating pixeldata of respective intersections of horizontal (or vertical) lines andan extended line which extends in the direction of interpolation fromthe interpolation location using Lagrangian or polyphase filtering;applying Lagrangian or polyphase filtering to the calculated pixel dataon the extended line; and obtaining and outputting interpolation data ofthe interpolation location.

According to still yet another aspect of the invention, there isprovided a method of scaling a digital image signal, comprising:receiving input pixel data, updating and storing pixel data on aplurality of lines passing through an interpolation location, andoutputting the updated pixel data in response to a control signal;determining a direction of interpolation of the interpolation locationfrom LPF-filtered data of the updated pixel data in response to thecontrol signal, calculating pixel data at intersections of horizontal(or vertical) lines and, which extends in the direction of interpolationfrom the interpolation location using Lagrangian or polyphase filtering,applying Lagrangian or polyphase filtering to the calculated pixel dataon the extended line, and obtaining and outputting interpolation data ofthe interpolation location; and generating the control signal, whichcontrols the LPF filtering, and the Lagrangian filtering or polyphasefiltering.

The scaling interpolation further comprises: LPF-filtering the updatedpixel data in response to the control signal and determining thedirection value, which corresponds to the direction of interpolation ofthe interpolation location from the LPF-filtered data, and outputtingthe direction value; and calculating the pixel data of the intersectionsof the horizontal (or vertical) lines and the extended linecorresponding to the direction value using Lagrangian or polyphasefiltering in response to the control signal, applying Lagrangian orpolyphase filtering to the calculated pixel data, and obtaining andoutputting the interpolation data of the interpolation location.

Related computer program product embodiments according to the inventionare also within the scope of the invention.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a scaling apparatus according to someembodiments of the invention.

FIG. 2 illustrates seven directions of interpolation applicable topixels according to some embodiments of the invention.

FIG. 3 is a schematic representation of directions at a center locationof existing pixels according to some embodiments of the invention.

FIG. 4 is a schematic representation of polynomial filtering accordingto some embodiments of the invention.

FIG. 5A is a schematic representation of interpolated of grey valuesobtained by linear interpolation according to a conventional approach.

FIG. 5B is a schematic representation of interpolated grey valuesobtained by interpolation according to some embodiments according to theinvention.

DETAILED DESCRIPTION OF EMBODIMENTS ACCORDING TO THE INVENTION

The invention is described herein with reference to the accompanyingdrawings, in which embodiments of the invention are shown. Thisinvention may, however, be embodied in many different forms and shouldnot be construed as limited to the embodiments set forth herein; rather,these embodiments are provided so that this disclosure will be thoroughand complete, and will fully convey the scope of the invention to thoseskilled in the art. Like numbers and reference designators refer to likeelements throughout.

As will be appreciated by one of skill in the art, the invention may beembodied as methods, systems, and/or computer program products.Accordingly, the invention may take the form of an entirely hardwareembodiment, an entirely software embodiment or an embodiment combiningsoftware and hardware aspects. Furthermore, the invention may take theform of a computer program product on a computer-usable storage mediumhaving computer-usable program code embodied in the medium. Any suitablecomputer readable medium may be utilized including hard disks, CD-ROMs,optical storage devices, or magnetic storage devices.

Computer program code or “code” for carrying out operations according tothe invention may be written in an object oriented programming languagesuch as JAVA®, or in various other programming languages. Softwareembodiments of the invention do not depend on implementation with aparticular programming language. Portions of the code may executeentirely on one or more systems utilized by an intermediary server.

The code may execute entirely on one or more servers, or it may executepartly on a server and partly on a client within a client device or as aproxy server at an intermediate point in a communications network. Inthe latter scenario, the client device may be connected to a server overa LAN or a WAN (e.g., an intranet), or the connection may be madethrough the Internet (e.g., via an Internet Service Provider). It isunderstood that the invention is not TCP/IP-specific orInternet-specific. The invention may be embodied using various protocolsover various types of computer networks.

The invention is described below with reference to diagram illustrationsof methods, systems and computer program products according toembodiments of the invention. It is understood that each element shownin the diagrams (i.e., flow diagrams), and combinations of elements inthe diagrams, can be implemented by computer program instructions. Thesecomputer program instructions may be provided to a processor of ageneral purpose computer, special purpose computer, or otherprogrammable data processing apparatus to produce a machine, such thatthe instructions, which execute via the processor of the computer orother programmable data processing apparatus, create means forimplementing the functions specified in the diagram element or elements.

These computer program instructions may be stored in a computer-readablememory that can direct a computer or other programmable data processingapparatus to function in a particular manner, such that the instructionsstored in the computer-readable memory produce an article of manufactureincluding instruction means which implement the function specified inthe diagram element or elements.

The computer program instructions may be loaded onto a computer or otherprogrammable data processing apparatus to cause a series of operationalsteps to be performed on the computer or other programmable apparatus toproduce a computer implemented process such that the instructions whichexecute on the computer or other programmable apparatus provide stepsfor implementing the functions specified in the diagram block or blocks.

FIG. 1 is a block diagram of a scaling apparatus according to someembodiments of the invention. Referring to FIG. 1, the scaling apparatusincludes a memory unit 110, a scaling interpolator 120, and a controller130. It will be understood that the controller 130 can be a processor,such as a microprocessor or digital signal processor, that is capable ofexecuting computer program instructions to carry out the operationsdisclosed herein. The memory unit 110 receives input pixel data (such asR, G, B structured data or Y, Cb, Cr structured data) corresponding to aplurality of lines of a display device on which the input pixel data isformatted for display. The memory unit 110 updates and stores the inputpixel data. It will be understood that the display device can be, forexample, a Liquid Crystal Display (LCD), a Cathode Ray Tube (CRT) orsome other display device capable of displaying information.

The memory unit 110 outputs the pixel data corresponding to theplurality of lines of the display around an interpolation location inresponse to a control signal output from the controller 110. The outputpixel data on the plurality of lines around the interpolation locationis data required for obtaining interpolation data at the interpolationlocation (black square dot shown in FIG. 3 through FIG. 5). If a pixelat the interpolation location displays R, G, or B color, the pixel dataon the plurality of lines required for obtaining interpolation data atthe interpolation location is also R, G, or B digital data.

The scaling interpolator 120 applies a low pass filter (LPF) to pixeldata included in lines proximate to (e.g., surrounding) the location ofinterpolation (i.e., the location on the display for which pixel data isto be interpolated). The scaling interpolator 120 determines a directionof interpolation at the interpolation location based on the LPF-filtereddata in response to the control signal. The scaling interpolator 120calculates pixel data for locations on the display where a linerepresenting the direction of interpolation intersects horizontal (orvertical) lines of the display. In some embodiments according to theinvention, the pixel data is determined using Lagrangian filtering orpolyphase filtering. The determined pixel data at the intersectingpoints on the line are filtered to calculate pixel data corresponding tothe location of interpolation. In some embodiments according to theinvention, Lagrangian or polyphase filtering is used to provide thecalculated pixel data corresponding to the location of interpolation. Itwill be understood that the data can be monochromatic or polychromaticpixel data (e.g., R′, G′ or B′) for the interpolation location.

The controller 130 generates the control signal that controls the LPFfiltering and the Lagrangian or polyphase filtering. Referring to FIG.1, the scaling interpolator 120 includes a direction determination unit121 and a directional interpolator 123. The direction determination unit121 LPF-filters the pixel data on the plurality of lines proximate tothe interpolation location in response to the control signal, anddetermines a direction of interpolation at the interpolation locationbased on the LPF-filtered data. The directional interpolator unit 123calculates pixel data at the respective intersections of the horizontal(or vertical) pixel lines and the extended line in the direction ofinterpolation by Lagrangian filtering or polyphase filtering in responseto the control signal, and then applies the Lagrangian or polyphasefiltering to the calculated pixel data on the extended line, therebyobtaining and outputting interpolation data (R′, G′ or B′ data) for theinterpolation location.

In some embodiments according to the invention, LPF-filtering isperformed by a Low Pass Filter (LPF) according to Equation 1, thusobtaining filtering data x′(i, j). That is, as seen in equation 1,filtered data x′(i, j), at a location (i, j) to be filtered, is obtainedby adding pixel data x(i+1, j) and x(i−1, j) existing on the horizontallines that are above and below the interpolation location to 6 times thepixel data x(i, j) at the interpolation location (i, j) and averagingthe added result.

$\begin{matrix}{{x^{\prime}\left( {i,j} \right)} = \frac{{x\left( {{i - 1},j} \right)} + {6 \times {x\left( {i,j} \right)}} + {x\left( {{i + 1},j} \right)}}{8}} & (1)\end{matrix}$

(Here, x′(i, j) is the LPF-filtered data and x(i, j) is pixel data inthe i-th row and j-th column).

FIG. 2 illustrates seven directions in which a pixel can beinterpolated. Referring to FIG. 2, directions of interpolation of apixel are determined using Equation 5, along with Equation 2, whichcalculates differences between the LPF-filtered data and pixel dataexisting for each seven direction D1 through D7 for an interpolationlocation, Equation 3, which calculates weighted values, and Equation 4which calculates the direction value corresponding to a minimal value ofW_(dir)×Pe_(dir). In Equation 4 or 5, DIR_(LOCAL), DIR_(GLOBAL), andDIR_(i), which represent direction values can each have one of sevenvalues 1 through 7, representing the seven directions denoted by D1through D7, respectively. Also, in Equation 2, x′_(p)(i, j) is anaverage value of pixel data for data pairs situated around a referencepixel (five data pairs in total) for each of the seven directions. Forexample, in FIG. 2, a black dot represents the location (i, j) of thereference pixel at an interpolation location, (i.e., the pixel at alocation for which data is to be interpolated.) In the direction of D1,Pe₁ represents the absolute value of “{[(P10+P15)/2−x′(i,j)]+[(P11+P16)/2−x′(i, j)]+2*[(P12+P17)/2−x′(i, j)]+[(P13+P18)/2−x′(i,j)]+[(P14+P19)/2−x′(i, j)]}.” In the direction of D2, Pe₂ represents theabsolute value of “{[(P20+P25)/2−x′(i, j)+[(P21+P26)/2−x′(i,j)]+2*[(P22+P27)/2−x′(i, j)]+[(P23+P28)/2−x′(i, j)]+[(P24+P29)/2]−x′(i,j)]}.” This expression is applied to seven directions D1 to D7 asfollows:

$\begin{matrix}{{Pe}_{dir} = {\sum\limits_{k = 0}^{n - 1}{a{{{x_{p}^{\prime}\left( {i,{j\text{:}k}} \right)} - {x^{\prime}\left( {i,j} \right)}}}}}} & (2)\end{matrix}$

(Here, k is a reference index representing one of five pairs of pixels,x′(i, j) is the LPF-filtered pixel data, x′_(p)(i, j:k) is the averagevalue of the pixel data corresponding to the reference index k (fivedata pairs in total) for data situated about the reference pixel in eachof the seven directions, and a is a weighted value according to k,wherein a=2 if k is the value corresponding to the pair centered aroundthe reference pixel, and a=1 otherwise).

$\begin{matrix}{W_{dir} = \left\{ \begin{matrix}1.0 & {{dir} = 1} \\1.25 & {{{dir} = 2},3} \\1.375 & {{{dir} = 4},5} \\1.5 & {{{dir} = 6},7}\end{matrix} \right.} & (3) \\\begin{matrix}{{DIR}_{LOCAL} = {\underset{dir}{ARG}\left\{ {\min\limits_{1 \leq {dir} \leq 3}\left( {W_{dir} \times {Pe}_{dir}} \right)} \right\}}} \\{{DIR}_{GLOBAL} = {\underset{dir}{ARG}\left\{ {\min\limits_{1 \leq {dir} \leq 7}\left( {W_{dir} \times {Pe}_{dir}} \right)} \right\}}}\end{matrix} & (4)\end{matrix}$

(Here, DIR_(LOCAL) is a local direction value and DIR_(GLOBAL) is aglobal direction value).If|W _(dir) _(GLOBAL) ·Pe _(dir) _(GLOBAL) −W _(dir) _(LOCAL) ·Pe _(dir)_(LOCAL) |<TDIR_(i)=DIR_(LOCAL)elseDIR_(i)=DIR_(GLOBAL)  (5)

(Here, DIR_(i) is a final direction value and T is a constantrepresenting a threshold value that depends on image noise).

In Equation 4, the direction values that correspond to the minimalvalues of W_(dir)×Pe_(dir) are the local direction value DIR_(LOCAL) andthe global direction value DIR_(GLOBAL). The local direction valueDIR_(LOCAL) corresponds to a minimal value W_(dir)×Pe_(dir) obtainedconsidering all of D1 through D3. The global direction valueDIR_(GLOBAL) corresponds to a minimal value W_(dir)×Pe_(dir) obtainedconsidering all of D1 through D7. In Equation 5, the threshold value Tdepends on the image noise.

FIG. 3 is a diagram illustrating a determination of an interpolationdirection at an interpolation point according to some embodiments of theinvention. Referring to FIG. 3, when the direction values of two pixelsP1 and P2, located above and below (left and right in a case ofhorizontal scaling) an interpolation location P3, are each representedby seven direction values 1 through 7, the direction of interpolation ofthe interpolation location P3 linearly changes between the directionvalue of the upper (or left) pixel P1 and the direction value of thelower (or right) pixel P2 according to the location of the interpolationlocation P3.

In FIG. 3, it is assumed that the interpolation location P3 is centeredbetween the pixels P1 and P2. In this case, the direction ofinterpolation at the interpolation location P3 is determined to be adirection of a vector c that is obtained by summing a vector a′,obtained by parallel-translating a vector a corresponding to thedirection of interpolation of the upper pixel P1, and a vector b′,obtained by parallel-translating a vector b corresponding to thedirection value of the lower pixel P2. At this time, since the directionat the interpolation location P3 linearly changes between the directionof the pixel P1 and the direction of the pixel P2, the direction ofinterpolation at the interpolation location P3 is determined more by thedirection value of pixel P1 than the direction value of pixel P2 if theinterpolation location P3 is located closer to the pixel P1, differentlyfrom FIG. 3. If the interpolation location P3 is located closer to thepixel P2, the direction of interpolation at the interpolation locationP3 is determined more by the direction value of the pixel P2. Thiscalculation is implemented by weighting the direction values of thepixels P1 and P2 according to the distances of the pixels P1 and P2 fromthe interpolation location.

FIG. 4 is a diagram illustrating the application of Lagrangian filteringor polyphase filtering to grey values of points according to someembodiments of the invention. In particular, filtering is applied to thepoints where horizontal lines intersect a line corresponding to thedirection of interpolation. In some embodiments according to theinvention, the filtering is performed using Lagrangian filtering orpolyphase filtering of the line. FIG. 4 shows an example of applyingLagrangian or polyphase filtering to the grey values of theintersections of the horizontal lines and the extended line for verticalscaling, however, it is also possible to obtain interpolation data forhorizontal scaling by applying Lagrangian or polyphase filtering to greyvalues of intersections of the vertical lines and the extended lineusing the same method.

Referring still to FIG. 4, interpolation data (R′, G′, or B′ data) canbe calculated from pixel data at four points near the interpolationlocation, however, the number of points near the interpolation locationmay vary. Since the complexity of hardware, such as memory, required forinterpolation increases if the number of selected points around theinterpolation location increase, the number of selected points aroundthe interpolation location can be adjusted based on the type of hardwareand/or software used.

Referring to FIG. 4, the directional interpolator unit 123 calculatespixel data Q1 through Q4 of the respective intersections on horizontalpixel lines intersecting an extended line extending in a direction ofinterpolation of an interpolation location LP from the interpolationlocation LP, using a Lagrangian or polyphase filter which performLagrangian or polyphase filtering such as in equations 6 and 7. Thedirectional interpolator 123 applies Lagrangian or polyphase filteringto the calculated pixel data Q1 through Q4 on the extended line oncemore, and obtains and outputs interpolation data (R′, G′, or B′ data) ofthe interpolation location LP. Lagrangian or polyphase filtering obtainsinterpolation data by using an n-th degree polynomial that passesthrough the n+1 points x(i) for i=0, . . . , n.

$\begin{matrix}{{L_{i}(t)} = {\coprod\limits_{{k = 0},{k \neq i}}^{n}\;\frac{t - k}{i - k}}} & (6)\end{matrix}$

(Here, n is the number of pixels to be used for interpolation and t is adistance from a first pixel of the n pixels to the intersectionlocation).

$\begin{matrix}{{p_{n}(t)} = {\sum\limits_{i = 0}^{n}{{L_{i}(i)}{x(i)}}}} & (7)\end{matrix}$

(Here, x(i) is pixel data at the respective intersections).

For example, in FIG. 4, data Q1 is obtained by applying Lagrangian orpolyphase filtering to data A1 through A4. At this time, since fourpixel data A1 through A4 exist corresponding to four points, n=4 and trepresents the distance from the point A1 to the point Q1 is about 1.2.Likewise, pixel data Q2 through Q4 at each of the remainingintersections of the horizontal pixel lines and the extended line arecalculated. Interpolation data (R′, G′, or B′ data) at the interpolationlocation LP is calculated by applying Lagrangian or polyphase filteringto the pixel data Q1 through Q4.

FIGS. 5A and 5B are diagrams illustrating interpolation of grey valuesobtained by linear interpolation according to a conventional techniqueand interpolation of grey values obtained by interpolation according toembodiments of the invention, respectively. That is, assuming that greyvalues of the 8-bit pixel data Q1 through Q4 are 255, 128, 0, and 100,respectively, and the interpolation location (black dot) is locatedbetween the pixels that have values of 128 and 0, the grey value of theinterpolation data (R′,G′, or B′ data) is 64 in FIG. 5A, whereas thegrey value of the interpolation data in FIG. 5B is 45.

The result shown in FIG. 5A occurs because of linear interpolation thatinterpolates only the grey values 128 and 0 of the two pixels locatednearest the interpolation location. In FIG. 5B, the interpolation isperformed with Lagrangian or polyphase filtering using four pointsaround the interpolation location. Since the interpolation result ofFIG. 5B is closer to an actual phenomenon, it is possible to reducedistortion occurring when the linear interpolation is performed foredges of an image, curved images, texture patterns, etc., and improvedisplay resolution.

As described above, the direction determination unit 121 of the scalinginterpolator 120 according to some embodiments of the inventionLPF-filters pixel data proximate to an interpolation location (i.e., alocation at which data is to be interpolated). The LPF-filtered data isused to determine a direction of interpolation at the interpolationlocation. Accordingly, the directional interpolator 123 calculates pixeldata for locations at which a line extending in the direction ofinterpolation intersects horizontal (or vertical) lines of the display.The determined pixel data (at the intersections) is filtered again,using, for example Lagrangian or polyphase filtering, to provideinterpolation data (R′, G′ and B′ data) at the interpolation location.The R′, G′ and B′ data as the interpolation data can be included in thevideo signal for display as an image on the display.

As disclosed above, the digital image signal scaling apparatus accordingto some embodiments of the invention, determines a direction ofinterpolation at a location to be interpolated, calculates pixel data atlocations where a line representing the direction of interpolationintersections horizontal (or vertical) lines of the display using apolyphase, Lagrangian, or polyphase polynomial filter, etc. Thecalculated pixel data is filtered again, using for example, Lagrangianor polynomial filtering, etc. to generate interpolation data at theinterpolation location.

While the invention has been particularly shown and described withreference to exemplary embodiments thereof, it will be understood bythose of ordinary skill in the art that various changes in form anddetails may be made therein without departing from the spirit and scopeof the invention as defined by the following claims.

1. An apparatus that scales a digital image signal comprising: a memoryunit, which receives originally formatted input pixel data, updates andstores the pixel data on a plurality of lines passing through aninterpolation location, and outputs the updated pixel data in responseto a control signal; a scaling interpolator, which determines adirection of interpolation of the interpolation location fromLPF-filtered data of the updated pixel data in response to the controlsignal, calculates pixel data values at points where an extended linethat passes through the interpolation location and extending in thedirection of interpolation intersects horizontal or vertical lines ofthe display using Lagrangian or polyphase filtering wherein the pointsare not included in the originally formatted input pixel data, appliesLagrangian filtering to the calculated pixel data on the extended line,and obtains and outputs interpolation data of the interpolation locationto provide an interpolated pixel value to a display to provide ascaled-up image thereon compared to the originally formatted input pixeldata; and a controller which generates the control signal, whichcontrols the LPF-filtering, and the Lagrangian filtering or polyphasefiltering, wherein the scaling interpolator comprises: a directiondetermination unit, which LPF-filters the updated pixel data in responseto the control signal, determines the direction value which correspondsto the direction of interpolation of the interpolation location from theLPF-filtered data, and outputs the direction value; and a directionalinterpolator, which calculates the pixel data values of theintersections of the horizontal (or vertical) lines and the extendedline using Lagrangian in response to the control signal, appliesLagrangian filtering to the calculated pixel data, and obtains andoutputs the interpolation data of the interpolation location, whereinthe LPF filtering is performed by an LPF with the property:${{x^{\prime}\left( {i,j} \right)} = \frac{{x\left( {{i - 1},j} \right)} + {6 \times {x\left( {i,j} \right)}} + {x\left( {{i + 1},j} \right)}}{8}},$wherein x′(i, j) is the filtered data and x(i, j) is pixel data at thei-th row and j-th column.
 2. The apparatus of claim 1, wherein thedirection of interpolation is determined by a direction value that islinearly changed between a direction value of a pixel P1 above (or tothe left of) the interpolation location and a direction value of a pixelP2 below (or to the right of) the interpolation location according tothe interpolation location, if the direction values of two pixels P1 andP2 above and below the interpolation location are each represented byseven values of 1 through
 7. 3. An apparatus that scales a digital imagesignal comprising: a memory unit, which receives originally formattedinput pixel data, updates and stores the pixel data on a plurality oflines passing through an interpolation location, and outputs the updatedpixel data in response to a control signal; a scaling interpolator,which determines a direction of interpolation of the interpolationlocation from LPF-filtered data of the updated pixel data in response tothe control signal, calculates pixel data values at points where anextended line that passes through the interpolation location andextending in the direction of interpolation intersects horizontal orvertical lines of the display using Lagrangian or polyphase filteringwherein the points are not included in the originally formatted inputpixel data, applies Lagrangian filtering to the calculated pixel data onthe extended line, and obtains and outputs interpolation data of theinterpolation location to provide an interpolated pixel value to adisplay to provide a scaled-up image thereon compared to the originallyformatted input pixel data; and a controller which generates the controlsignal, which controls the LPF-filtering, and the Lagrangian filteringor polyphase filtering, wherein the scaling interpolator comprises: adirection determination unit, which LPF-filters the updated pixel datain response to the control signal, determines the direction value whichcorresponds to the direction of interpolation of the interpolationlocation from the LPF-filtered data, and outputs the direction value;and a directional interpolator, which calculates the pixel data valuesof the intersections of the horizontal (or vertical) lines and theextended line using Lagrangian in response to the control signal,applies Lagrangian filtering to the calculated pixel data, and obtainsand outputs the interpolation data of the interpolation location,wherein the direction of interpolation is determined by a directionvalue that is linearly changed between a direction value of a pixel P1above (or to the left of) the interpolation location and a directionvalue of a pixel P2 below (or to the right of) the interpolationlocation according to the interpolation location, if the directionvalues of two pixels P1 and P2 above and below the interpolationlocation are each represented by seven values of 1 through 7, whereinthe direction value of the pixel is determined by:If|W _(dir) _(GLOBAL) ·Pe _(dir) _(GLOBAL) −W _(dir) _(LOCAL) ·Pe _(dir)_(LOCAL) |<TDIR_(i)=DIR_(LOCAL),elseDIR_(i)=DIR_(GLOBAL), where,${Pe}_{dir} = {\sum\limits_{k = 0}^{n - 1}\;{a{{{x_{p}^{\prime}\left( {i,{j\text{:}k}} \right)} - {x^{\prime}\left( {i,j} \right)}}}}}$is used to calculate a difference between the LPF-filtered data and theupdated pixel data, $W_{dir} = \left\{ \begin{matrix}1.0 & {{dir} = 1} \\1.25 & {{{dir} = 2},3} \\1.375 & {{{dir} = 4},5} \\1.5 & {{{dir} = 6},7}\end{matrix} \right.$ is used for calculating a weighted value, and${DIR}_{LOCAL} = {{\underset{dir}{ARG}\left\{ {\min\limits_{1 \leq {dir} \leq 3}\left( {W_{dir} \times {Pe}_{dir}} \right)} \right\}\mspace{14mu}{and}\mspace{14mu}{DIR}_{GLOBAL}} = {\underset{dir}{ARG}\left\{ {\min\limits_{1 \leq {dir} \leq 7}\left( {W_{dir} \times {Pe}_{dir}} \right)} \right\}}}$are used to calculate the direction value according to the minimal valueOf W_(dir)×Pe_(dir); wherein, k is a reference index representing one offive pairs of pixels, x′(i, j) is the LPF-filtered pixel data, x′_(p)(i,j:k) is the average value of the pixel data corresponding to thereference index k for data situated about the reference pixel in each ofthe seven directions, a is a weighted value according to k, wherein a=2if k is the value corresponding to the pair centered around thereference pixel, and a=1 otherwise, DIR_(LOCAL) is a local directionvalue, DIR_(GLOBAL) is a global direction value, DIR_(i) is a finaldirection value, and T is a constant representing a threshold value thatdepends on an image noise.
 4. An apparatus that scales a digital imagesignal comprising: a memory unit, which receives originally formattedinput pixel data, updates and stores the pixel data on a plurality oflines passing through an interpolation location, and outputs the updatedpixel data in response to a control signal; a scaling interpolator,which determines a direction of interpolation of the interpolationlocation from LPF-filtered data of the updated pixel data in response tothe control signal, calculates pixel data values at points where anextended line that passes through the interpolation location andextending in the direction of interpolation intersects horizontal orvertical lines of the display using Lagrangian or polyphase filteringwherein the points are not included in the originally formatted inputpixel data, applies Lagrangian filtering to the calculated pixel data onthe extended line, and obtains and outputs interpolation data of theinterpolation location to provide an interpolated pixel value to adisplay to provide a scaled-up image thereon compared to the originallyformatted input pixel data; and a controller which generates the controlsignal, which controls the LPF-filtering, and the Lagrangian filteringor polyphase filtering, wherein the scaling interpolator comprises: adirection determination unit, which LPF-filters the updated pixel datain response to the control signal, determines the direction value whichcorresponds to the direction of interpolation of the interpolationlocation from the LPF-filtered data, and outputs the direction value;and a directional interpolator, which calculates the pixel data valuesof the intersections of the horizontal (or vertical) lines and theextended line using Lagrangian in response to the control signal,applies Lagrangian filtering to the calculated pixel data, and obtainsand outputs the interpolation data of the interpolation location,wherein the Lagrangian or the polyphase filtering is performed by aLagrangian filter or a polyphase filter using: $\begin{matrix}{{L_{i}(t)} = {\prod\limits_{{k = 0},{k \neq i}}^{n}\;{\frac{t - k}{i - k}\mspace{14mu}{and}}}} \\{{{p_{n}(t)} = {\sum\limits_{i = 0}^{n}\;{{L_{i}(i)}{x(i)}}}},}\end{matrix}$ wherein n is the number of pixels to be used forinterpolation, t is a distance from the first pixel of the n pixels tothe intersection location, and x(i) is pixel data at the respectiveintersections.
 5. A scaling interpolation computer implemented methodcomprising: receiving and LPF-filtering originally formatted pixel dataon a plurality of lines passing through an interpolation location anddetermining a direction value, which is used for a direction ofinterpolation at the interpolation location from the LPF-filtered dataand outputting the direction value; calculating pixel data values atpoints where an extended line that passes through the interpolationlocation and extending in the direction of interpolation intersectshorizontal or vertical lines of the display using Lagrangian orpolyphase filtering wherein the points are not included in theoriginally formatted pixel data; applying Lagrangian filtering to thecalculated pixel data on the extended line; and obtaining and outputtinginterpolation data of the interpolation location to provide aninterpolated pixel value to a display to provide a scaled-up imagethereon compared to the originally formatted input pixel data, whereinthe Lagrangian or the polyphase filtering is performed by a Lagrangianfilter or a polyphase filter using: $\begin{matrix}{{L_{i}(t)} = {\prod\limits_{{k = 0},{k \neq i}}^{n}\;{\frac{t - k}{i - k}\mspace{14mu}{and}}}} \\{{{p_{n}(t)} = {\sum\limits_{i = 0}^{n}\;{{L_{i}(i)}{x(i)}}}},}\end{matrix}$ wherein n is the number of pixels to be used forinterpolation, t is a distance from the first pixel of the n pixels tothe intersection location, and x(i) is pixel data at the respectiveintersections.
 6. A scaling interpolation computer implemented methodcomprising: receiving and LPF-filtering originally formatted pixel dataon a plurality of lines passing through an interpolation location anddetermining a direction value, which is used for a direction ofinterpolation at the interpolation location from the LPF-filtered dataand outputting the direction value; calculating pixel data values atpoints where an extended line that passes through the interpolationlocation and extending in the direction of interpolation intersectshorizontal or vertical lines of the display using Lagrangian orpolyphase filtering wherein the points are not included in theoriginally formatted pixel data; applying Lagrangian filtering to thecalculated pixel data on the extended line; and obtaining and outputtinginterpolation data of the interpolation location to provide aninterpolated pixel value to a display to provide a scaled-up imagethereon compared to the originally formatted input pixel data, whereinthe LPF filtering is performed by an LPF with the property:${{x^{\prime}\left( {i,j} \right)} = \frac{{x\left( {{i - 1},j} \right)} + {6 \times {x\left( {i,j} \right)}} + {x\left( {{i + 1},j} \right)}}{8}},$wherein x′(i, j) is the filtered data and x(i, j) is pixel data at thei-th row and j-th column.
 7. The method of claim 5 wherein the directionof interpolation is determined by a direction value that is linearlychanged between a direction value of a pixel P1 above (or to the leftof) the interpolation location and a direction value of a pixel P2 below(or to the right of) the interpolation location according to theinterpolation location, if the direction values of the two pixels P1 andP2 above and below the interpolation location are each represented byseven values of 1 through
 7. 8. A scaling interpolation computerimplemented method comprising: receiving and LPF-filtering originallyformatted pixel data on a plurality of lines passing through aninterpolation location and determining a direction value, which is usedfor a direction of interpolation at the interpolation location from theLPF-filtered data and outputting the direction value; calculating pixeldata values at points where an extended line that passes through theinterpolation location and extending in the direction of interpolationintersects horizontal or vertical lines of the display using Lagrangianor polyphase filtering wherein the points are not included in theoriginally formatted pixel data; applying Lagrangian filtering to thecalculated pixel data on the extended line; and obtaining and outputtinginterpolation data of the interpolation location to provide aninterpolated pixel value to a display to provide a scaled-up imagethereon compared to the originally formatted input pixel data, whereinthe direction of interpolation is determined by a direction value thatis linearly changed between a direction value of a pixel P1 above (or tothe left of) the interpolation location and a direction value of a pixelP2 below (or to the right of) the interpolation location according tothe interpolation location, if the direction values of the two pixels P1and P2 above and below the interpolation location are each representedby seven values of 1 through 7, wherein the direction value of the pixelis determined by:If|W _(dir) _(GLOBAL) ·Pe _(dir) _(GLOBAL) −W _(dir) _(LOCAL) ·Pe _(dir)_(LOCAL) |<TDIR_(i)=DIR_(LOCAL),elseDIR_(i)=DIR_(GLOBAL), where,${Pe}_{dir} = {\sum\limits_{k = 0}^{n - 1}\;{a{{{x_{p}^{\prime}\left( {i,{j\text{:}k}} \right)} - {x^{\prime}\left( {i,j} \right)}}}}}$is used to calculate a difference between the LPF-filtered data and theupdated pixel data, $W_{dir} = \left\{ \begin{matrix}1.0 & {{dir} = 1} \\1.25 & {{{dir} = 2},3} \\1.375 & {{{dir} = 4},5} \\1.5 & {{{dir} = 6},7}\end{matrix} \right.$ is used for calculating a weighted value, and${DIR}_{LOCAL} = {{\underset{dir}{ARG}\left\{ {\min\limits_{1 \leq {dir} \leq 3}\left( {W_{dir} \times {Pe}_{dir}} \right)} \right\}\mspace{14mu}{and}\mspace{14mu}{DIR}_{GLOBAL}} = {\underset{dir}{ARG}\left\{ {\min\limits_{1 \leq {dir} \leq 7}\left( {W_{dir} \times {Pe}_{dir}} \right)} \right\}}}$are used to calculate the direction value according to the minimal valueof W_(dir)×Pe_(dir); wherein, k is a reference index representing one offive pairs of pixels, x′(i, j) is the LPF-filtered pixel data, x′_(p)(i,j:k) is the average value of the pixel data corresponding to thereference index k for data situated about the reference pixel in each ofthe seven directions, a is a weighted value according to k, wherein a=2if k is the value corresponding to the pair centered around thereference pixel, and a=1 otherwise, DIR_(LOCAL) is a local directionvalue, DIR_(GLOBAL) is a global direction value, DIR_(i) is a finaldirection value, and T is a constant representing a threshold value thatdepends on an image noise.